package com.fate.system.vo.approval;

import lombok.Data;
import lombok.Getter;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import jakarta.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;

import java.io.Serializable;

import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;

import org.hibernate.validator.constraints.Length;


/**
* @Author:      ten.x
* @TableName    gov_approval
* @Date:        2024-08-26 11:52:23
* @Version:     V1.0
*/
@Data
@Accessors(chain = true)
@TableName(value ="gov_approval")
@EqualsAndHashCode(callSuper = false)
public class ApprovalListVO implements Serializable {

@TableField(exist = false)
private static final long serialVersionUID = 1L;

    /**
    * 
    */
    @NotBlank(message="[]不能为空")
    @Size(max= 100,message="编码长度不能超过100")
    @TableField(value = "id")
    @Schema(description = "")
    @Length(max= 100,message="编码长度不能超过100")
    private String id;
    /**
    * 是否删除
    */
    @NotNull(message="[是否删除]不能为空")
    @TableField(value = "deleted")
    @Schema(description = "是否删除")
    private Integer deleted;
    /**
    * 创建时间
    */
    @NotNull(message="[创建时间]不能为空")
    @TableField(value = "gmt_create")
    @Schema(description = "创建时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date gmtCreate;
    /**
    * 修改时间
    */
    @NotNull(message="[修改时间]不能为空")
    @TableField(value = "gmt_modified")
    @Schema(description = "修改时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date gmtModified;
    /**
    * 租户id
    */
    @Size(max= 100,message="编码长度不能超过100")
    @TableField(value = "tenant_id")
    @Schema(description = "租户id")
    @Length(max= 100,message="编码长度不能超过100")
    private String tenantId;
    /**
    * 客户id
    */
    @Size(max= 100,message="编码长度不能超过100")
    @TableField(value = "client_id")
    @Schema(description = "客户id")
    @Length(max= 100,message="编码长度不能超过100")
    private String clientId;
    /**
    * 设备id
    */
    @Size(max= 100,message="编码长度不能超过100")
    @TableField(value = "equipment_id")
    @Schema(description = "设备id")
    @Length(max= 100,message="编码长度不能超过100")
    private String equipmentId;
    /**
    * 普通用户id
    */
    @Size(max= 100,message="编码长度不能超过100")
    @TableField(value = "normal_id")
    @Schema(description = "普通用户id")
    @Length(max= 100,message="编码长度不能超过100")
    private String normalId;
    /**
    * 审批类型【1退款】
    */
    @TableField(value = "type")
    @Schema(description = "审批类型【1退款】")
    private Integer type;
    /**
    * 操作人id
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "operator_id")
    @Schema(description = "操作人id")
    @Length(max= 255,message="编码长度不能超过255")
    private String operatorId;
    /**
    * 操作时间
    */
    @TableField(value = "operation_time")
    @Schema(description = "操作时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date operationTime;
    /**
    * 订单id
    */
    @Size(max= 100,message="编码长度不能超过100")
    @TableField(value = "order_form_id")
    @Schema(description = "订单id")
    @Length(max= 100,message="编码长度不能超过100")
    private String orderFormId;
    /**
    * 流程实例id
    */
    @TableField(value = "instance_id")
    @Schema(description = "流程实例id")
    private String instanceId;
    /**
    * 审批状态【1未审批 2已通过 3已驳回】
    */
    @TableField(value = "status")
    @Schema(description = "审批状态【1未审批 2已通过 3已驳回】")
    private Integer status;
}